package Biblioteca;


import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;

import Reproductor.*;

public abstract class Ordenacion implements Comparator<Cancion>  {
	public enum TipoSort{TITULO,ARTISTA,ALBUM,NUMERO};
	
	public static void sort(ArrayList<Cancion> c, TipoSort t){
		switch (t) {
		case TITULO:
			Collections.sort(c, new OrdenarPorTitulo());
			break;
		case ARTISTA:
			Collections.sort(c, new OrdenarPorArtista());
			break;
		case ALBUM:
			Collections.sort(c, new OrdenarPorAlbum());
			break;
		case NUMERO:
			Collections.sort(c, new OrdenarPorNumero());
			break;
			
		default:
			Collections.sort(c, new OrdenarPorTitulo());
			break;
		}
	}

}

	class OrdenarPorTitulo extends Ordenacion{
		public OrdenarPorTitulo(){};
		@Override
		public int compare(Cancion o1, Cancion o2) {
			return o1.getTitulo().compareTo(o2.getTitulo());
			}
	}
	
	class OrdenarPorArtista extends Ordenacion{
		@Override
		public int compare(Cancion o1, Cancion o2) {
			return o1.getArtista().compareTo(o2.getArtista());
			}
		
	}
	
	class OrdenarPorAlbum extends Ordenacion{
		@Override
		public int compare(Cancion o1, Cancion o2) {
			return o1.getAlbum().compareTo(o2.getAlbum());
			}	
	}
	
	class OrdenarPorNumero extends Ordenacion{
		@Override
		public int compare(Cancion o1, Cancion o2) {
			return o1.getNumero().compareTo(o2.getNumero());
			}	
	}
